﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Noris.Schedule.Support.Green;

namespace Noris.Schedule.Support.Services
{
	// INTERFACE ICowley : předpis pro vlastností programu, který představuje nevizuální funkci (Cowley).
	/// <summary>
	/// Interface, který předepisuje vlastnosti programu, který představuje nevizuální funkci (Cowley).
	/// </summary>
	/// <remarks>
	/// Třída, která je Cowley, musí jednak vracet svůj identifikátor (typicky číslo cowley), 
	/// a jednak musí umět převzít řízení pro provedení své akce.
	/// </remarks>
	public interface ICowley : IPlugin
	{
		/// <summary>
		/// Zde Cowley vrací svoji identifikaci (číslo, název, cokoliv), jako string.
		/// Podle této identifikace se určuje, která výkonná třída provede konkrétní funkci.
		/// </summary>
		string CowleyID { get; }
		/// <summary>
		/// Vstupní bod Cowley.
		/// Jakékoli parametry (předané v příkazové řádce) si může vyzvednout přes Steward.ParamGet(name).
		/// Pro zobrazování progresu jsou určeny metody Steward.CowleyProgressInit() a Steward.CowleyProgress().
		/// </summary>
		void Run();
	}
}
